/* 约数个数
* 1.N的约数个数(1~N中能整除N的个数 N%x == 0)
    N = p1^c1 * p2^c2 * p3^c3 * p4^c4... pk^ck
    f(N) = (c1+1) * (c2+2) * (c3+3) ... * (ck+k)

    1~N中 累加(1~N)f(i) O(NlogN)

    0 <= N <= 2e9 约数个数max <= 5e4

    for(int i = 1; i < N; i++){
        if(cnt[i] == 0) continue; //优化
        for(int j = i; j < N; j+=i)  //只考虑倍数 
            ans[j] += cnt[i];
    }

* 本题: 
    1.不同的质因子最多只会包含9个(2~29的质数相乘)
    2.每个质因子的次数最大是30
    3.所有质因子的次数一定递减
*/

#define DEBUG
#pragma GCC optimize("O1,O2,O3,Ofast")
#pragma GCC optimize("no-stack-protector,unroll-loops,fast-math,inline")
#pragma GCC target("avx,avx2,fma")
#pragma GCC target("sse,sse2,sse3,sse4,sse4.1,sse4.2,ssse3")

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;
#define int long long

int n;
int primes[9] = {2, 3, 5, 7, 11, 13, 17, 19, 23};
int maxd, number; //约数个数 数本身

void dfs(int u, int last, int p, int s) //第u个素数 上一个的次方数 上一个数(次方之后）约数个数
{
    // 当前的约数个数大于等于最大约数个数
    if(s > maxd || s == maxd && p < number) {
        maxd = s;
        number = p;
    }
    if(u == 9) return;
    for(int i = 1; i <= last; i++) {
        if(1ll*p*primes[u] > n) break;
        p *= primes[u];
        dfs(u+1, i, p, s*(i+1));
    }
}

signed main()
{
    #ifdef DEBUG
        freopen("./in.txt", "r", stdin);
    #else
        ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    #endif

    
    cin >> n;
    dfs(0, 30, 1, 1);

    cout << number << endl; 
    return 0;
}